LINQ Query তৈরি এবং রান করা

Microsoft Technologies - লিংক (LinQ) বেসিক LINQ অপারেশন (Basic LINQ Operations) |
173
173

LINQ (Language Integrated Query) ব্যবহার করে ডেটা কুয়েরি তৈরি এবং রান করার প্রক্রিয়া সহজ এবং পরিষ্কার। LINQ এর মাধ্যমে, আপনি .NET ভাষা (যেমন C# বা VB.NET) ব্যবহার করে বিভিন্ন ডেটা সোর্সে কুয়েরি লিখতে পারেন। এটি ডেটাবেস, ইন-মেমোরি অবজেক্ট, XML, DataSet ইত্যাদি বিভিন্ন ধরনের ডেটা সোর্সের উপর কার্যকরী।

LINQ কুয়েরি তৈরি করতে এবং রান করার জন্য কিছু প্রধান পদক্ষেপ নিচে বর্ণনা করা হলো:


LINQ Query তৈরি করা

LINQ কুয়েরি তৈরি করার জন্য Query Syntax এবং Method Syntax দুটি পদ্ধতি ব্যবহার করা যায়। আমরা এই দুটি পদ্ধতিতে কুয়েরি লেখার উদাহরণ দেখবো।

Query Syntax

Query Syntax SQL-এর মতোই দেখতে হয় এবং এটি একটি ডিক্লারেটিভ পদ্ধতি। কুয়েরি তৈরির জন্য মূলত from, where, select ইত্যাদি কীওয়ার্ড ব্যবহার করা হয়।

উদাহরণ:

List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

// Query Syntax ব্যবহার করে even numbers বের করা
var evenNumbers = from num in numbers
                  where num % 2 == 0
                  select num;

foreach (var num in evenNumbers)
{
    Console.WriteLine(num);  // Output: 2, 4, 6, 8, 10
}

এখানে numbers লিস্টের মধ্যে যেসব সংখ্যা even (জোড়) তাদের বের করা হয়েছে।

Method Syntax

Method Syntax একটি ফাংশনাল পদ্ধতি, যেখানে LINQ মেথড (যেমন Where(), Select(), OrderBy() ইত্যাদি) ব্যবহার করা হয়। এটি খুবই শক্তিশালী এবং সাধারণত Lambda Expressions ব্যবহার করা হয়।

উদাহরণ:

List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

// Method Syntax ব্যবহার করে even numbers বের করা
var evenNumbers = numbers.Where(num => num % 2 == 0);

foreach (var num in evenNumbers)
{
    Console.WriteLine(num);  // Output: 2, 4, 6, 8, 10
}

এখানে Where() মেথডের মাধ্যমে even numbers বের করা হয়েছে, যেখানে Lambda Expression (num => num % 2 == 0) ব্যবহার করা হয়েছে।


LINQ Query রান করা

LINQ কুয়েরি রান করা অর্থাৎ কুয়েরি এক্সিকিউট করা হয় যখন তার ফলাফল প্রয়োজন হয়। LINQ কুয়েরি সাধারণত Deferred Execution সমর্থন করে, অর্থাৎ কুয়েরি তখনই এক্সিকিউট হবে যখন তার ফলাফল অ্যাক্সেস করা হবে।

Deferred Execution

এটা LINQ এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যেখানে কুয়েরি লেখার পর তা তখনই কার্যকর হয় যখন তার ফলাফল প্রয়োজন হয়, যেমন foreach লুপে কুয়েরি ব্যবহার করার সময়।

উদাহরণ:

List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

// Deferred Execution: কুয়েরি তখনই এক্সিকিউট হবে যখন ফলাফল প্রয়োজন
var evenNumbers = from num in numbers
                  where num % 2 == 0
                  select num;

// কুয়েরি এক্সিকিউট করা
foreach (var num in evenNumbers)
{
    Console.WriteLine(num);  // Output: 2, 4, 6, 8, 10
}

এখানে evenNumbers কুয়েরি লেখার পর তা এক্সিকিউট হবে foreach লুপের মধ্যে।

Immediate Execution

Immediate Execution এর মাধ্যমে কুয়েরি তখনই এক্সিকিউট হয় যখন তা সরাসরি ফলাফল দেয়, যেমন ToList(), Count(), First() ইত্যাদি ব্যবহার করা হলে কুয়েরি ফলাফল আসলেই এক্সিকিউট হয়।

উদাহরণ:

List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

// Immediate Execution: কুয়েরি এক্সিকিউট হবে এখনই
var evenNumbersList = numbers.Where(num => num % 2 == 0).ToList();

foreach (var num in evenNumbersList)
{
    Console.WriteLine(num);  // Output: 2, 4, 6, 8, 10
}

এখানে ToList() মেথড ব্যবহার করা হয়েছে, যা কুয়েরি লেখার সাথে সাথে তা এক্সিকিউট করে List আকারে ফলাফল প্রদান করে।


LINQ Query এর ফলাফল প্রসেসিং

একবার কুয়েরি রান হলে, আপনি তার ফলাফলগুলি বিভিন্নভাবে প্রসেস করতে পারেন। এখানে বিভিন্ন কৌশল ব্যবহার করা হতে পারে, যেমন:

  • First() / FirstOrDefault(): প্রথম রেকর্ড পাওয়া বা null ফেরত দেয়া।
  • Count(): ফলাফলের সংখ্যা গণনা করা।
  • Sum(): ফলাফলের উপর গণনা করা (যেমন যোগফল)।
  • Average(): গড় মান বের করা।

উদাহরণ:

List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

// Count() ব্যবহার করে even numbers এর সংখ্যা বের করা
var countEven = numbers.Count(num => num % 2 == 0);

Console.WriteLine("Number of even numbers: " + countEven);  // Output: 5

// Sum() ব্যবহার করে even numbers এর যোগফল বের করা
var sumEven = numbers.Where(num => num % 2 == 0).Sum();
Console.WriteLine("Sum of even numbers: " + sumEven);  // Output: 30

এখানে Count() এবং Sum() মেথড ব্যবহার করা হয়েছে, যা even numbers এর সংখ্যা এবং যোগফল বের করেছে।


LINQ Query এর ফলাফল সাজানো

LINQ তে ফলাফল সাজানোর জন্য OrderBy() এবং OrderByDescending() মেথড ব্যবহার করা হয়। এগুলি যথাক্রমে ascending (বৃদ্ধি) এবং descending (হ্রাস) অর্ডারে ফলাফল সাজায়।

উদাহরণ:

List<int> numbers = new List<int> { 10, 3, 7, 4, 1, 8, 5 };

// OrderBy() ব্যবহার করে ascending অর্ডারে সাজানো
var sortedNumbers = numbers.OrderBy(num => num);

foreach (var num in sortedNumbers)
{
    Console.WriteLine(num);  // Output: 1, 3, 4, 5, 7, 8, 10
}

// OrderByDescending() ব্যবহার করে descending অর্ডারে সাজানো
var sortedNumbersDesc = numbers.OrderByDescending(num => num);

foreach (var num in sortedNumbersDesc)
{
    Console.WriteLine(num);  // Output: 10, 8, 7, 5, 4, 3, 1
}

এখানে OrderBy() এবং OrderByDescending() ব্যবহার করে ascending এবং descending অর্ডারে ফলাফল সাজানো হয়েছে।


সারাংশ

LINQ কুয়েরি তৈরি এবং রান করা খুবই সহজ এবং কার্যকর। LINQ এর মাধ্যমে ডেটা কুয়েরি লেখার দুটি প্রধান পদ্ধতি হল Query Syntax এবং Method SyntaxDeferred Execution এবং Immediate Execution এর মাধ্যমে LINQ কুয়েরি এক্সিকিউশন কন্ট্রোল করা যায়। LINQ কুয়েরির মাধ্যমে ডেটা প্রসেস করা, সাজানো এবং গণনা করা যায় খুবই সহজ এবং পরিষ্কারভাবে, যা কোডের রিডেবিলিটি এবং কার্যকারিতা উন্নত করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion